[INFO] cloning repository https://github.com/hpca-uji/uArchFHE
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hpca-uji/uArchFHE" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhpca-uji%2FuArchFHE", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhpca-uji%2FuArchFHE'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8ee13ee96a9ab5701a6fe66abdfe74ffefe9b38d
[INFO] testing hpca-uji/uArchFHE against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhpca-uji%2FuArchFHE" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-7-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/hpca-uji/uArchFHE
[INFO] finished tweaking git repo https://github.com/hpca-uji/uArchFHE
[INFO] tweaked toml for git repo https://github.com/hpca-uji/uArchFHE written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hpca-uji/uArchFHE on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hpca-uji/uArchFHE already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 296657d988c16ae053e7573b328f398f8207723fe8589b06edc97e670a6a3299
[INFO] running `Command { std: "docker" "start" "-a" "296657d988c16ae053e7573b328f398f8207723fe8589b06edc97e670a6a3299", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "296657d988c16ae053e7573b328f398f8207723fe8589b06edc97e670a6a3299", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "296657d988c16ae053e7573b328f398f8207723fe8589b06edc97e670a6a3299", kill_on_drop: false }`
[INFO] [stdout] 296657d988c16ae053e7573b328f398f8207723fe8589b06edc97e670a6a3299
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c77f288e32c22b98cd2b5f4869bdb43f571c3de34ee0320c302cb0cc3b75c641
[INFO] running `Command { std: "docker" "start" "-a" "c77f288e32c22b98cd2b5f4869bdb43f571c3de34ee0320c302cb0cc3b75c641", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling libm v0.2.11 (https://github.com/rust-lang/libm?tag=libm-v0.2.11#cdbf4238)
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling num-traits v0.2.19 (https://github.com/rust-num/num-traits?tag=num-traits-0.2.19#7ec3d41d)
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling cblas-sys v0.1.4
[INFO] [stderr]    Compiling lapack-sys v0.14.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling rand_distr v0.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling katexit v0.1.5
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling shared v0.1.0 (/opt/rustwide/workdir/crates/ntt/shared)
[INFO] [stderr]    Compiling cauchy v0.4.0
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling common v0.1.0 (/opt/rustwide/workdir/crates/common)
[INFO] [stdout] warning: unused import: `num_traits::ToPrimitive`
[INFO] [stdout]  --> crates/common/src/util/primitive_mapper.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::ToPrimitive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> crates/common/src/math/modular.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 |     base = (base % q);
[INFO] [stdout]    |            ^        ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -     base = (base % q);
[INFO] [stdout] 34 +     base = base % q;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `Zero`
[INFO] [stdout]  --> crates/common/src/math/barret.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use num_traits::{One, Zero};
[INFO] [stdout]   |                  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `ToPrimitive`
[INFO] [stdout]  --> crates/common/src/math/primes.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::{One, ToPrimitive};
[INFO] [stdout]   |                  ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_bigint::BigUint`
[INFO] [stdout]  --> crates/common/src/math/big_int_mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_bigint::BigUint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::complex::Complex64`
[INFO] [stdout]  --> crates/common/src/math/shift.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num::complex::Complex64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::modular::gcd`
[INFO] [stdout]  --> crates/common/src/math/shift.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::math::modular::gcd;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> crates/common/src/math/primes.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut rng = rand::thread_rng();
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling kernel v0.1.0 (/opt/rustwide/workdir/crates/ntt/kernel)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/common/src/math/shift.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |             let mut tmp = res[i];
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling lax v0.17.0
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/avx/avx.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub unsafe fn ntt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stdout]  6 | |     let len = u.len();
[INFO] [stdout]  7 | |     let mut chunks = len / 8;
[INFO] [stdout]  8 | |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout] ...  |
[INFO] [stdout] 93 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:97:1
[INFO] [stdout]     |
[INFO] [stdout]  97 | / pub unsafe fn intt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stdout]  98 | |     let len = u.len();
[INFO] [stdout]  99 | |     let mut chunks = len / 8;
[INFO] [stdout] ...   |
[INFO] [stdout] 199 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:257:1
[INFO] [stdout]     |
[INFO] [stdout] 257 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stdout] 258 | |     use core::arch::x86_64::*;
[INFO] [stdout] 259 | |
[INFO] [stdout] 260 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:315:1
[INFO] [stdout]     |
[INFO] [stdout] 315 | / pub unsafe fn intt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stdout] 316 | |     use core::arch::x86_64::*;
[INFO] [stdout] 317 | |
[INFO] [stdout] 318 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 378 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:383:1
[INFO] [stdout]     |
[INFO] [stdout] 383 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64],
[INFO] [stdout] 384 | |                                           constant: u64, q: u64,
[INFO] [stdout] 385 | |                                           qr: u64, twok: u64) {
[INFO] [stdout] 386 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 465 | |     );
[INFO] [stdout] 466 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:471:1
[INFO] [stdout]     |
[INFO] [stdout] 471 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 472 | |     use core::arch::x86_64::*;
[INFO] [stdout] 473 | |
[INFO] [stdout] 474 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 570 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::math::mod_mul_barrett`
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/neon/neon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::math::mod_mul_barrett;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/simd_operations.rs:67:36
[INFO] [stdout]    |
[INFO] [stdout] 67 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 68 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 69 | |                     ntt_butterfly_avx512(u_c, v_c, w, q, q_inv);
[INFO] [stdout] ...  |
[INFO] [stdout] 72 | |             },
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/simd_operations.rs:74:34
[INFO] [stdout]    |
[INFO] [stdout] 74 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]    |  __________________________________^
[INFO] [stdout] 75 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 76 | |                     ntt_butterfly_avx2(u_c, v_c, w, q, q_inv);
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |             },
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:115:36
[INFO] [stdout]     |
[INFO] [stdout] 115 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 116 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 117 | |                     intt_butterfly_avx512(u_c, v_c, w, q, qd, q_inv);
[INFO] [stdout] ...   |
[INFO] [stdout] 120 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 123 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 124 | |                     intt_butterfly_avx2(u_c, v_c, w, q, qd, q_inv);
[INFO] [stdout] ...   |
[INFO] [stdout] 127 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:163:36
[INFO] [stdout]     |
[INFO] [stdout] 163 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 164 | |                 mul_const_and_reduce_avx512(a, constant, q, qr, twok);
[INFO] [stdout] 165 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 166 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 169 | |                 mul_const_and_reduce_avx2(a, constant, q, qr, twok);
[INFO] [stdout] 170 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 171 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/sve2/sve2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:215:1
[INFO] [stdout]     |
[INFO] [stdout] 215 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:232:1
[INFO] [stdout]     |
[INFO] [stdout] 232 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:244:1
[INFO] [stdout]     |
[INFO] [stdout] 244 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut chunks = len / 8;
[INFO] [stdout]   |         ----^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/avx/avx.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut chunks = len / 8;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:386:9
[INFO] [stdout]     |
[INFO] [stdout] 386 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:387:9
[INFO] [stdout]     |
[INFO] [stdout] 387 |     let mut chunks = a.len() / 8;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stdout]  --> crates/ntt/kernel/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ntt v0.1.0 (/opt/rustwide/workdir/crates/ntt)
[INFO] [stdout] warning: unused import: `ntt_butterfly_step`
[INFO] [stdout]  --> crates/ntt/src/runners/cpu.rs:2:97
[INFO] [stdout]   |
[INFO] [stdout] 2 | use kernel::math::math::{mod_barrett, mod_barrett_64, mod_mul_barrett, mod_sub, montgomery_mul, ntt_butterfly_step};
[INFO] [stdout]   |                                                                                                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared::params::Params`
[INFO] [stdout]  --> crates/ntt/src/runners/cpu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use shared::params::Params;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fast_reduce` is never used
[INFO] [stdout]   --> crates/ntt/src/runners/cpu.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl NttCpu {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 14 |     fn fast_reduce(&self, val: u128, idx: usize, is_p: bool) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ndarray-linalg v0.17.0
[INFO] [stderr]    Compiling fhe v0.1.0 (/opt/rustwide/workdir/crates/fhe)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stdout]   --> crates/fhe/src/context.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(not(feature = "cuda"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Normal`
[INFO] [stdout]  --> crates/fhe/src/context.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand_distr::{Normal};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/context.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One`, `WrappingMul`, and `Zero`
[INFO] [stdout]   --> crates/fhe/src/context.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stdout]    |                  ^^^                            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mod_barrett_64`
[INFO] [stdout]   --> crates/fhe/src/context.rs:13:41
[INFO] [stdout]    |
[INFO] [stdout] 13 | use common::math::barret::{mod_barrett, mod_barrett_64, mod_mul_barrett};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stdout]    --> crates/fhe/src/context.rs:546:19
[INFO] [stdout]     |
[INFO] [stdout] 546 |         #[cfg(not(feature = "cuda"))]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:262:75
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut p_root_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                           ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:263:79
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let mut p_root_pows_inv: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:264:81
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut p_root_scale_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                                 ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> crates/fhe/src/context.rs:453:109
[INFO] [stdout]     |
[INFO] [stdout] 453 | ...   pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i]...
[INFO] [stdout]     |                                                                                                   ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 453 -                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stdout] 453 +                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, 1u64 << 20 , q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]     --> crates/fhe/src/context.rs:1966:13
[INFO] [stdout]      |
[INFO] [stdout] 1966 | /             unsafe {
[INFO] [stdout] 1967 | |                 std::ptr::swap(&mut vals[i], &mut vals[j]);
[INFO] [stdout] 1968 | |             }
[INFO] [stdout]      | |_____________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Keys`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::hash_map::Keys;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `rng`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub unsafe fn add_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout]  6 | |     let len = a.len();
[INFO] [stdout]  7 | |     let mut chunks_16 = len / 16;
[INFO] [stdout]  8 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | / pub unsafe fn add_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout] 56 | |     use core::arch::x86_64::*;
[INFO] [stdout] 57 | |
[INFO] [stdout] 58 | |     let len = a.len();
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 | / pub unsafe fn sub_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout]  94 | |     let len = a.len();
[INFO] [stdout]  95 | |     let mut chunks_16 = len / 16;
[INFO] [stdout]  96 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | / pub unsafe fn sub_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout] 149 | |     use core::arch::x86_64::*;
[INFO] [stdout] 150 | |     let len = a.len();
[INFO] [stdout] 151 | |     let chunks = len / 4;
[INFO] [stdout] ...   |
[INFO] [stdout] 188 | |     _mm256_zeroupper();
[INFO] [stdout] 189 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | / pub unsafe fn mul_and_reduce_avx512(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 194 | |     let len = a.len();
[INFO] [stdout] 195 | |     let chunks = len / 8;
[INFO] [stdout] ...   |
[INFO] [stdout] 268 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:272:1
[INFO] [stdout]     |
[INFO] [stdout] 272 | / pub unsafe fn mul_and_reduce_avx2(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 273 | |     use core::arch::x86_64::*;
[INFO] [stdout] 274 | |
[INFO] [stdout] 275 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:365:1
[INFO] [stdout]     |
[INFO] [stdout] 365 | / pub unsafe fn mul_avx512_u64(a: &mut [u64], b: &[u64]) {
[INFO] [stdout] 366 | |     let len = a.len();
[INFO] [stdout] 367 | |     let chunks_16 = len / 16;
[INFO] [stdout] 368 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 404 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 405 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:409:1
[INFO] [stdout]     |
[INFO] [stdout] 409 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 410 | |     let len = a.len();
[INFO] [stdout] 411 | |     let mut chunks_16 = len / 16;
[INFO] [stdout] 412 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 507 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:511:1
[INFO] [stdout]     |
[INFO] [stdout] 511 | / pub unsafe fn multiply_by_const_i64_avx512(
[INFO] [stdout] 512 | |     a: &[i64],
[INFO] [stdout] 513 | |     constant: i64,
[INFO] [stdout] 514 | |     result: &mut [i64],
[INFO] [stdout] ...   |
[INFO] [stdout] 555 | |     core::arch::asm!("vzeroupper");
[INFO] [stdout] 556 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:560:1
[INFO] [stdout]     |
[INFO] [stdout] 560 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 561 | |     use core::arch::x86_64::*;
[INFO] [stdout] 562 | |
[INFO] [stdout] 563 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 658 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:662:1
[INFO] [stdout]     |
[INFO] [stdout] 662 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, w_ratio: u64, q: u64) {
[INFO] [stdout] 663 | |     use core::arch::x86_64::*;
[INFO] [stdout] 664 | |
[INFO] [stdout] 665 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 747 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:750:1
[INFO] [stdout]     |
[INFO] [stdout] 750 | / pub unsafe fn fused_mul_add_i64_avx512(
[INFO] [stdout] 751 | |     c0: *const i64, d0: *const i64, c1: *const i64, d1: *const i64, scale: i64,
[INFO] [stdout] 752 | |     t0: *mut u64, t1: *mut u64, t2: *mut u64, len: usize
[INFO] [stdout] 753 | | ) {
[INFO] [stdout] ...   |
[INFO] [stdout] 828 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 829 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:816:13
[INFO] [stdout]     |
[INFO] [stdout] 816 | /             unsafe {
[INFO] [stdout] 817 | |                 let c0_v = *c0.add(i);
[INFO] [stdout] 818 | |                 let d0_v = *d0.add(i);
[INFO] [stdout] 819 | |                 let c1_v = *c1.add(i);
[INFO] [stdout] ...   |
[INFO] [stdout] 824 | |                 *t2.add(i) = (d0_v as f64 * d1_v as f64 * inv_scale) as u64;
[INFO] [stdout] 825 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:833:1
[INFO] [stdout]     |
[INFO] [stdout] 833 | / pub unsafe fn fused_mul_add_i64_avx2(
[INFO] [stdout] 834 | |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout] 835 | |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout] 836 | | ) {
[INFO] [stdout] ...   |
[INFO] [stdout] 954 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 955 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:943:9
[INFO] [stdout]     |
[INFO] [stdout] 943 | /         unsafe {
[INFO] [stdout] 944 | |             let offset = i - processed;
[INFO] [stdout] 945 | |             let c0_v = *c0.add(offset);
[INFO] [stdout] 946 | |             let d0_v = *d0.add(offset);
[INFO] [stdout] ...   |
[INFO] [stdout] 951 | |             *t2.add(offset) = ((d0_v.wrapping_mul(d1_v) as f64) * inv_scale) as u64;
[INFO] [stdout] 952 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `common::math::barret::mod_mul_barrett`
[INFO] [stdout]  --> crates/fhe/src/simd/neon/neon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use common::math::barret::mod_mul_barrett;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ntt_butterfly_avx2`
[INFO] [stdout]  --> crates/fhe/src/simd/simd_operations.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...                   ntt_butterfly_avx2, sub_mod_avx2_u64, sub_mod_avx512_u64};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:74:40
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 SimdBackend::Avx512 => unsafe { add_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:76:38
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 SimdBackend::Avx2 => unsafe { add_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:98:40
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 SimdBackend::Avx512 => unsafe { sub_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:100:38
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 SimdBackend::Avx2 => unsafe { sub_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:122:40
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 SimdBackend::Avx512 => unsafe { mul_and_reduce_avx512(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:124:38
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 SimdBackend::Avx2 => unsafe { mul_and_reduce_avx2(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:146:40
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 SimdBackend::Avx512 => unsafe { mul_const_and_reduce_avx512(a_chunk, constant, q, qr, twok); },
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:148:38
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 SimdBackend::Avx2 => unsafe { mul_const_and_reduce_avx2(a_chunk, constant, q, qr, twok); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:186:40
[INFO] [stdout]     |
[INFO] [stdout] 186 |                   SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 187 | |                     fused_mul_add_i64_avx512(
[INFO] [stdout] 188 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stdout] 189 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stdout] ...   |
[INFO] [stdout] 197 | |                     );
[INFO] [stdout] 198 | |                 },
[INFO] [stdout]     | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:200:38
[INFO] [stdout]     |
[INFO] [stdout] 200 |                   SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  ______________________________________^
[INFO] [stdout] 201 | |                     fused_mul_add_i64_avx2(
[INFO] [stdout] 202 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stdout] 203 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |                     );
[INFO] [stdout] 212 | |                 },
[INFO] [stdout]     | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1752:29
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1804:29
[INFO] [stdout]      |
[INFO] [stdout] 1804 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1877:29
[INFO] [stdout]      |
[INFO] [stdout] 1877 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> crates/fhe/src/simd/rvv/rvv.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the crate root is at `crates/fhe/src/lib.rs`
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]  --> crates/fhe/src/context.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_linalg::Scalar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WrappingAdd`
[INFO] [stdout]   --> crates/fhe/src/context.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stdout]    |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/context.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let mut p_root_scale_pows_over_p: Vec<u64> = vec![0; k];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> crates/fhe/src/context.rs:303:21
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 let tmp = (power as u128) << 64;
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stdout]      |
[INFO] [stdout] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boot_context_map`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stdout]      |
[INFO] [stdout] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boot_context_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:477:57
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn mult_by_monomial(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:525:71
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn mult_by_monomial_and_equal(&self, cipher: &mut Ciphertext, poly: &[u64]) {
[INFO] [stdout]     |                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:530:46
[INFO] [stdout]     |
[INFO] [stdout] 530 |     pub fn imult(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stdout]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:675:13
[INFO] [stdout]     |
[INFO] [stdout] 675 |         for i in 0..dl {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dl`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:698:13
[INFO] [stdout]     |
[INFO] [stdout] 698 |         let dl = cipher.l - l;
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_dl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/fhe/src/simd/avx/avx.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut chunks_16 = len / 16;
[INFO] [stdout]   |         ----^^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut chunks_16 = len / 16;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let mut chunks_16 = len / 16;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:412:9
[INFO] [stdout]     |
[INFO] [stdout] 412 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:517:9
[INFO] [stdout]     |
[INFO] [stdout] 517 |     let mut a_ptr = a.as_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:518:9
[INFO] [stdout]     |
[INFO] [stdout] 518 |     let mut r_ptr = result.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |     let mut chunks_16 = len / 16;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:5
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |     ----^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:25
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                         ----^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:45
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                                             ----^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:65
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                                                                 ----^^
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:5
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |     ----^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:23
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |                       ----^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:41
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |                                         ----^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:837:9
[INFO] [stdout]     |
[INFO] [stdout] 837 |     let mut chunks = len / 4;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_Q` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1415:9
[INFO] [stdout]      |
[INFO] [stdout] 1415 |         log_Q: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case: `log_q`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_T` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1416:9
[INFO] [stdout]      |
[INFO] [stdout] 1416 |         log_T: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case: `log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_I` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1417:9
[INFO] [stdout]      |
[INFO] [stdout] 1417 |         log_I: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `log_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling basic-ckks-operations v0.1.0 (/opt/rustwide/workdir/examples/basic-ckks-operations)
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{info, log};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_rotation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_rotation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_mult.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_mult.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sum.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sum.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `left_rotate_and_equal` and `right_rotate_and_equal`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use common::math::shift::{left_rotate_and_equal, right_rotate_and_equal};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sub.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let nu = 4;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let nu = 4;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 2;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dec_vec`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let dec_vec = ckks.decrypt_complex(&mut enc_vec1);
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dec_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_mult.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_mult.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut keys = timer("Keygen time",true, || {
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx.clone()));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut vec1: Vec<Complex<f64>> = vec![Complex::new(0.0370666, 0.664054), Complex::new(0.22808, 0.710907),
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sub.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sub.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stdout]  --> crates/fhe/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `basic_ckks_operations::example_bootstrapping::example_bootstrapping`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use basic_ckks_operations::example_bootstrapping::example_bootstrapping;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> examples/basic-ckks-operations/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     unsafe {
[INFO] [stdout] 12 | |         std::env::set_var("RUST_LOG", "info");
[INFO] [stdout] 13 | |         env_logger::init();
[INFO] [stdout] 14 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized] target(s) in 25.32s
[INFO] running `Command { std: "docker" "inspect" "c77f288e32c22b98cd2b5f4869bdb43f571c3de34ee0320c302cb0cc3b75c641", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c77f288e32c22b98cd2b5f4869bdb43f571c3de34ee0320c302cb0cc3b75c641", kill_on_drop: false }`
[INFO] [stdout] c77f288e32c22b98cd2b5f4869bdb43f571c3de34ee0320c302cb0cc3b75c641
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5d577f2142931352e86bacbfc4206364e4d329a60da4d3f27492ec7942ea4a4a
[INFO] running `Command { std: "docker" "start" "-a" "5d577f2142931352e86bacbfc4206364e4d329a60da4d3f27492ec7942ea4a4a", kill_on_drop: false }`
[INFO] [stderr]    Compiling shared v0.1.0 (/opt/rustwide/workdir/crates/ntt/shared)
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/avx/avx.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub unsafe fn ntt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stdout]  6 | |     let len = u.len();
[INFO] [stdout]  7 | |     let mut chunks = len / 8;
[INFO] [stdout]  8 | |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout] ...  |
[INFO] [stdout] 93 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:97:1
[INFO] [stdout]     |
[INFO] [stdout]  97 | / pub unsafe fn intt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stdout]  98 | |     let len = u.len();
[INFO] [stdout]  99 | |     let mut chunks = len / 8;
[INFO] [stdout] ...   |
[INFO] [stdout] 199 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:257:1
[INFO] [stdout]     |
[INFO] [stdout] 257 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stdout] 258 | |     use core::arch::x86_64::*;
[INFO] [stdout] 259 | |
[INFO] [stdout] 260 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:315:1
[INFO] [stdout]     |
[INFO] [stdout] 315 | / pub unsafe fn intt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stdout] 316 | |     use core::arch::x86_64::*;
[INFO] [stdout] 317 | |
[INFO] [stdout] 318 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 378 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:383:1
[INFO] [stdout]     |
[INFO] [stdout] 383 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64],
[INFO] [stdout] 384 | |                                           constant: u64, q: u64,
[INFO] [stdout] 385 | |                                           qr: u64, twok: u64) {
[INFO] [stdout] 386 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 465 | |     );
[INFO] [stdout] 466 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:471:1
[INFO] [stdout]     |
[INFO] [stdout] 471 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 472 | |     use core::arch::x86_64::*;
[INFO] [stdout] 473 | |
[INFO] [stdout] 474 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 570 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::math::mod_mul_barrett`
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/neon/neon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::math::mod_mul_barrett;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/simd_operations.rs:67:36
[INFO] [stdout]    |
[INFO] [stdout] 67 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 68 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 69 | |                     ntt_butterfly_avx512(u_c, v_c, w, q, q_inv);
[INFO] [stdout] ...  |
[INFO] [stdout] 72 | |             },
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/simd_operations.rs:74:34
[INFO] [stdout]    |
[INFO] [stdout] 74 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]    |  __________________________________^
[INFO] [stdout] 75 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 76 | |                     ntt_butterfly_avx2(u_c, v_c, w, q, q_inv);
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |             },
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:115:36
[INFO] [stdout]     |
[INFO] [stdout] 115 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 116 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 117 | |                     intt_butterfly_avx512(u_c, v_c, w, q, qd, q_inv);
[INFO] [stdout] ...   |
[INFO] [stdout] 120 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 123 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 124 | |                     intt_butterfly_avx2(u_c, v_c, w, q, qd, q_inv);
[INFO] [stdout] ...   |
[INFO] [stdout] 127 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:163:36
[INFO] [stdout]     |
[INFO] [stdout] 163 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 164 | |                 mul_const_and_reduce_avx512(a, constant, q, qr, twok);
[INFO] [stdout] 165 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 166 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 169 | |                 mul_const_and_reduce_avx2(a, constant, q, qr, twok);
[INFO] [stdout] 170 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 171 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/sve2/sve2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:215:1
[INFO] [stdout]     |
[INFO] [stdout] 215 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:232:1
[INFO] [stdout]     |
[INFO] [stdout] 232 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:244:1
[INFO] [stdout]     |
[INFO] [stdout] 244 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut chunks = len / 8;
[INFO] [stdout]   |         ----^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling kernel v0.1.0 (/opt/rustwide/workdir/crates/ntt/kernel)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/avx/avx.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut chunks = len / 8;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:386:9
[INFO] [stdout]     |
[INFO] [stdout] 386 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:387:9
[INFO] [stdout]     |
[INFO] [stdout] 387 |     let mut chunks = a.len() / 8;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stdout]  --> crates/ntt/kernel/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ntt_butterfly_step`
[INFO] [stdout]  --> crates/ntt/src/runners/cpu.rs:2:97
[INFO] [stdout]   |
[INFO] [stdout] 2 | use kernel::math::math::{mod_barrett, mod_barrett_64, mod_mul_barrett, mod_sub, montgomery_mul, ntt_butterfly_step};
[INFO] [stdout]   |                                                                                                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared::params::Params`
[INFO] [stdout]  --> crates/ntt/src/runners/cpu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use shared::params::Params;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fast_reduce` is never used
[INFO] [stdout]   --> crates/ntt/src/runners/cpu.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl NttCpu {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 14 |     fn fast_reduce(&self, val: u128, idx: usize, is_p: bool) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::ToPrimitive`
[INFO] [stdout]  --> crates/common/src/util/primitive_mapper.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::ToPrimitive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> crates/common/src/math/modular.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 |     base = (base % q);
[INFO] [stdout]    |            ^        ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -     base = (base % q);
[INFO] [stdout] 34 +     base = base % q;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `Zero`
[INFO] [stdout]  --> crates/common/src/math/barret.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use num_traits::{One, Zero};
[INFO] [stdout]   |                  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `ToPrimitive`
[INFO] [stdout]  --> crates/common/src/math/primes.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::{One, ToPrimitive};
[INFO] [stdout]   |                  ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_bigint::BigUint`
[INFO] [stdout]  --> crates/common/src/math/big_int_mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_bigint::BigUint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::complex::Complex64`
[INFO] [stdout]  --> crates/common/src/math/shift.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num::complex::Complex64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::modular::gcd`
[INFO] [stdout]  --> crates/common/src/math/shift.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::math::modular::gcd;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ntt v0.1.0 (/opt/rustwide/workdir/crates/ntt)
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> crates/common/src/math/primes.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut rng = rand::thread_rng();
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/common/src/math/shift.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |             let mut tmp = res[i];
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling common v0.1.0 (/opt/rustwide/workdir/crates/common)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stdout]   --> crates/fhe/src/context.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(not(feature = "cuda"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Normal`
[INFO] [stdout]  --> crates/fhe/src/context.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand_distr::{Normal};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/context.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One`, `WrappingMul`, and `Zero`
[INFO] [stdout]   --> crates/fhe/src/context.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stdout]    |                  ^^^                            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mod_barrett_64`
[INFO] [stdout]   --> crates/fhe/src/context.rs:13:41
[INFO] [stdout]    |
[INFO] [stdout] 13 | use common::math::barret::{mod_barrett, mod_barrett_64, mod_mul_barrett};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stdout]    --> crates/fhe/src/context.rs:546:19
[INFO] [stdout]     |
[INFO] [stdout] 546 |         #[cfg(not(feature = "cuda"))]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:262:75
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut p_root_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                           ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:263:79
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let mut p_root_pows_inv: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:264:81
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut p_root_scale_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                                 ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> crates/fhe/src/context.rs:453:109
[INFO] [stdout]     |
[INFO] [stdout] 453 | ...   pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i]...
[INFO] [stdout]     |                                                                                                   ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 453 -                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stdout] 453 +                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, 1u64 << 20 , q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]     --> crates/fhe/src/context.rs:1966:13
[INFO] [stdout]      |
[INFO] [stdout] 1966 | /             unsafe {
[INFO] [stdout] 1967 | |                 std::ptr::swap(&mut vals[i], &mut vals[j]);
[INFO] [stdout] 1968 | |             }
[INFO] [stdout]      | |_____________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Keys`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::hash_map::Keys;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `rng`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub unsafe fn add_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout]  6 | |     let len = a.len();
[INFO] [stdout]  7 | |     let mut chunks_16 = len / 16;
[INFO] [stdout]  8 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | / pub unsafe fn add_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout] 56 | |     use core::arch::x86_64::*;
[INFO] [stdout] 57 | |
[INFO] [stdout] 58 | |     let len = a.len();
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 | / pub unsafe fn sub_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout]  94 | |     let len = a.len();
[INFO] [stdout]  95 | |     let mut chunks_16 = len / 16;
[INFO] [stdout]  96 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | / pub unsafe fn sub_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout] 149 | |     use core::arch::x86_64::*;
[INFO] [stdout] 150 | |     let len = a.len();
[INFO] [stdout] 151 | |     let chunks = len / 4;
[INFO] [stdout] ...   |
[INFO] [stdout] 188 | |     _mm256_zeroupper();
[INFO] [stdout] 189 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | / pub unsafe fn mul_and_reduce_avx512(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 194 | |     let len = a.len();
[INFO] [stdout] 195 | |     let chunks = len / 8;
[INFO] [stdout] ...   |
[INFO] [stdout] 268 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:272:1
[INFO] [stdout]     |
[INFO] [stdout] 272 | / pub unsafe fn mul_and_reduce_avx2(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 273 | |     use core::arch::x86_64::*;
[INFO] [stdout] 274 | |
[INFO] [stdout] 275 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:365:1
[INFO] [stdout]     |
[INFO] [stdout] 365 | / pub unsafe fn mul_avx512_u64(a: &mut [u64], b: &[u64]) {
[INFO] [stdout] 366 | |     let len = a.len();
[INFO] [stdout] 367 | |     let chunks_16 = len / 16;
[INFO] [stdout] 368 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 404 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 405 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:409:1
[INFO] [stdout]     |
[INFO] [stdout] 409 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 410 | |     let len = a.len();
[INFO] [stdout] 411 | |     let mut chunks_16 = len / 16;
[INFO] [stdout] 412 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 507 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:511:1
[INFO] [stdout]     |
[INFO] [stdout] 511 | / pub unsafe fn multiply_by_const_i64_avx512(
[INFO] [stdout] 512 | |     a: &[i64],
[INFO] [stdout] 513 | |     constant: i64,
[INFO] [stdout] 514 | |     result: &mut [i64],
[INFO] [stdout] ...   |
[INFO] [stdout] 555 | |     core::arch::asm!("vzeroupper");
[INFO] [stdout] 556 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:560:1
[INFO] [stdout]     |
[INFO] [stdout] 560 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 561 | |     use core::arch::x86_64::*;
[INFO] [stdout] 562 | |
[INFO] [stdout] 563 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 658 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:662:1
[INFO] [stdout]     |
[INFO] [stdout] 662 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, w_ratio: u64, q: u64) {
[INFO] [stdout] 663 | |     use core::arch::x86_64::*;
[INFO] [stdout] 664 | |
[INFO] [stdout] 665 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 747 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:750:1
[INFO] [stdout]     |
[INFO] [stdout] 750 | / pub unsafe fn fused_mul_add_i64_avx512(
[INFO] [stdout] 751 | |     c0: *const i64, d0: *const i64, c1: *const i64, d1: *const i64, scale: i64,
[INFO] [stdout] 752 | |     t0: *mut u64, t1: *mut u64, t2: *mut u64, len: usize
[INFO] [stdout] 753 | | ) {
[INFO] [stdout] ...   |
[INFO] [stdout] 828 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 829 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:816:13
[INFO] [stdout]     |
[INFO] [stdout] 816 | /             unsafe {
[INFO] [stdout] 817 | |                 let c0_v = *c0.add(i);
[INFO] [stdout] 818 | |                 let d0_v = *d0.add(i);
[INFO] [stdout] 819 | |                 let c1_v = *c1.add(i);
[INFO] [stdout] ...   |
[INFO] [stdout] 824 | |                 *t2.add(i) = (d0_v as f64 * d1_v as f64 * inv_scale) as u64;
[INFO] [stdout] 825 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:833:1
[INFO] [stdout]     |
[INFO] [stdout] 833 | / pub unsafe fn fused_mul_add_i64_avx2(
[INFO] [stdout] 834 | |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout] 835 | |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout] 836 | | ) {
[INFO] [stdout] ...   |
[INFO] [stdout] 954 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 955 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:943:9
[INFO] [stdout]     |
[INFO] [stdout] 943 | /         unsafe {
[INFO] [stdout] 944 | |             let offset = i - processed;
[INFO] [stdout] 945 | |             let c0_v = *c0.add(offset);
[INFO] [stdout] 946 | |             let d0_v = *d0.add(offset);
[INFO] [stdout] ...   |
[INFO] [stdout] 951 | |             *t2.add(offset) = ((d0_v.wrapping_mul(d1_v) as f64) * inv_scale) as u64;
[INFO] [stdout] 952 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling fhe v0.1.0 (/opt/rustwide/workdir/crates/fhe)
[INFO] [stdout] warning: unused import: `common::math::barret::mod_mul_barrett`
[INFO] [stdout]  --> crates/fhe/src/simd/neon/neon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use common::math::barret::mod_mul_barrett;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ntt_butterfly_avx2`
[INFO] [stdout]  --> crates/fhe/src/simd/simd_operations.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...                   ntt_butterfly_avx2, sub_mod_avx2_u64, sub_mod_avx512_u64};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:74:40
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 SimdBackend::Avx512 => unsafe { add_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:76:38
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 SimdBackend::Avx2 => unsafe { add_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:98:40
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 SimdBackend::Avx512 => unsafe { sub_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:100:38
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 SimdBackend::Avx2 => unsafe { sub_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:122:40
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 SimdBackend::Avx512 => unsafe { mul_and_reduce_avx512(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:124:38
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 SimdBackend::Avx2 => unsafe { mul_and_reduce_avx2(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:146:40
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 SimdBackend::Avx512 => unsafe { mul_const_and_reduce_avx512(a_chunk, constant, q, qr, twok); },
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:148:38
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 SimdBackend::Avx2 => unsafe { mul_const_and_reduce_avx2(a_chunk, constant, q, qr, twok); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:186:40
[INFO] [stdout]     |
[INFO] [stdout] 186 |                   SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 187 | |                     fused_mul_add_i64_avx512(
[INFO] [stdout] 188 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stdout] 189 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stdout] ...   |
[INFO] [stdout] 197 | |                     );
[INFO] [stdout] 198 | |                 },
[INFO] [stdout]     | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:200:38
[INFO] [stdout]     |
[INFO] [stdout] 200 |                   SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  ______________________________________^
[INFO] [stdout] 201 | |                     fused_mul_add_i64_avx2(
[INFO] [stdout] 202 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stdout] 203 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |                     );
[INFO] [stdout] 212 | |                 },
[INFO] [stdout]     | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1752:29
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1804:29
[INFO] [stdout]      |
[INFO] [stdout] 1804 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1877:29
[INFO] [stdout]      |
[INFO] [stdout] 1877 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> crates/fhe/src/simd/rvv/rvv.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the crate root is at `crates/fhe/src/lib.rs`
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]  --> crates/fhe/src/context.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_linalg::Scalar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WrappingAdd`
[INFO] [stdout]   --> crates/fhe/src/context.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stdout]    |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/context.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let mut p_root_scale_pows_over_p: Vec<u64> = vec![0; k];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> crates/fhe/src/context.rs:303:21
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 let tmp = (power as u128) << 64;
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stdout]      |
[INFO] [stdout] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boot_context_map`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stdout]      |
[INFO] [stdout] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boot_context_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:477:57
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn mult_by_monomial(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:525:71
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn mult_by_monomial_and_equal(&self, cipher: &mut Ciphertext, poly: &[u64]) {
[INFO] [stdout]     |                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:530:46
[INFO] [stdout]     |
[INFO] [stdout] 530 |     pub fn imult(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stdout]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:675:13
[INFO] [stdout]     |
[INFO] [stdout] 675 |         for i in 0..dl {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dl`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:698:13
[INFO] [stdout]     |
[INFO] [stdout] 698 |         let dl = cipher.l - l;
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_dl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/fhe/src/simd/avx/avx.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut chunks_16 = len / 16;
[INFO] [stdout]   |         ----^^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut chunks_16 = len / 16;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let mut chunks_16 = len / 16;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:412:9
[INFO] [stdout]     |
[INFO] [stdout] 412 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:517:9
[INFO] [stdout]     |
[INFO] [stdout] 517 |     let mut a_ptr = a.as_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:518:9
[INFO] [stdout]     |
[INFO] [stdout] 518 |     let mut r_ptr = result.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |     let mut chunks_16 = len / 16;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:5
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |     ----^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:25
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                         ----^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:45
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                                             ----^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:65
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                                                                 ----^^
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:5
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |     ----^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:23
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |                       ----^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:41
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |                                         ----^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:837:9
[INFO] [stdout]     |
[INFO] [stdout] 837 |     let mut chunks = len / 4;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_Q` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1415:9
[INFO] [stdout]      |
[INFO] [stdout] 1415 |         log_Q: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case: `log_q`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_T` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1416:9
[INFO] [stdout]      |
[INFO] [stdout] 1416 |         log_T: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case: `log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_I` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1417:9
[INFO] [stdout]      |
[INFO] [stdout] 1417 |         log_I: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `log_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stdout]  --> crates/fhe/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/avx/avx.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub unsafe fn ntt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stdout]  6 | |     let len = u.len();
[INFO] [stdout]  7 | |     let mut chunks = len / 8;
[INFO] [stdout]  8 | |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout] ...  |
[INFO] [stdout] 93 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:97:1
[INFO] [stdout]     |
[INFO] [stdout]  97 | / pub unsafe fn intt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stdout]  98 | |     let len = u.len();
[INFO] [stdout]  99 | |     let mut chunks = len / 8;
[INFO] [stdout] ...   |
[INFO] [stdout] 199 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:257:1
[INFO] [stdout]     |
[INFO] [stdout] 257 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stdout] 258 | |     use core::arch::x86_64::*;
[INFO] [stdout] 259 | |
[INFO] [stdout] 260 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:315:1
[INFO] [stdout]     |
[INFO] [stdout] 315 | / pub unsafe fn intt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stdout] 316 | |     use core::arch::x86_64::*;
[INFO] [stdout] 317 | |
[INFO] [stdout] 318 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 378 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:383:1
[INFO] [stdout]     |
[INFO] [stdout] 383 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64],
[INFO] [stdout] 384 | |                                           constant: u64, q: u64,
[INFO] [stdout] 385 | |                                           qr: u64, twok: u64) {
[INFO] [stdout] 386 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 465 | |     );
[INFO] [stdout] 466 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:471:1
[INFO] [stdout]     |
[INFO] [stdout] 471 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 472 | |     use core::arch::x86_64::*;
[INFO] [stdout] 473 | |
[INFO] [stdout] 474 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 570 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::math::mod_mul_barrett`
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/neon/neon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::math::mod_mul_barrett;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/simd_operations.rs:67:36
[INFO] [stdout]    |
[INFO] [stdout] 67 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 68 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 69 | |                     ntt_butterfly_avx512(u_c, v_c, w, q, q_inv);
[INFO] [stdout] ...  |
[INFO] [stdout] 72 | |             },
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/simd_operations.rs:74:34
[INFO] [stdout]    |
[INFO] [stdout] 74 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]    |  __________________________________^
[INFO] [stdout] 75 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 76 | |                     ntt_butterfly_avx2(u_c, v_c, w, q, q_inv);
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |             },
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:115:36
[INFO] [stdout]     |
[INFO] [stdout] 115 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 116 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 117 | |                     intt_butterfly_avx512(u_c, v_c, w, q, qd, q_inv);
[INFO] [stdout] ...   |
[INFO] [stdout] 120 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 123 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stdout] 124 | |                     intt_butterfly_avx2(u_c, v_c, w, q, qd, q_inv);
[INFO] [stdout] ...   |
[INFO] [stdout] 127 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:163:36
[INFO] [stdout]     |
[INFO] [stdout] 163 |               SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 164 | |                 mul_const_and_reduce_avx512(a, constant, q, qr, twok);
[INFO] [stdout] 165 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 166 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/simd_operations.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |               SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 169 | |                 mul_const_and_reduce_avx2(a, constant, q, qr, twok);
[INFO] [stdout] 170 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 171 | |             },
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/sve2/sve2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:215:1
[INFO] [stdout]     |
[INFO] [stdout] 215 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:232:1
[INFO] [stdout]     |
[INFO] [stdout] 232 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:244:1
[INFO] [stdout]     |
[INFO] [stdout] 244 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{info, log};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_rotation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_rotation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_mult.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_mult.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sum.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sum.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `left_rotate_and_equal` and `right_rotate_and_equal`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use common::math::shift::{left_rotate_and_equal, right_rotate_and_equal};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sub.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let nu = 4;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let nu = 4;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 2;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dec_vec`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let dec_vec = ckks.decrypt_complex(&mut enc_vec1);
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dec_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_mult.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_mult.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut keys = timer("Keygen time",true, || {
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx.clone()));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut vec1: Vec<Complex<f64>> = vec![Complex::new(0.0370666, 0.664054), Complex::new(0.22808, 0.710907),
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sub.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sub.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling basic-ckks-operations v0.1.0 (/opt/rustwide/workdir/examples/basic-ckks-operations)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut chunks = len / 8;
[INFO] [stdout]   |         ----^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/ntt/kernel/src/simd/avx/avx.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ntt/kernel/src/simd/avx/avx.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut chunks = len / 8;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:386:9
[INFO] [stdout]     |
[INFO] [stdout] 386 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ntt/kernel/src/simd/avx/avx.rs:387:9
[INFO] [stdout]     |
[INFO] [stdout] 387 |     let mut chunks = a.len() / 8;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stdout]  --> crates/ntt/kernel/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ntt_butterfly_step`
[INFO] [stdout]  --> crates/ntt/src/runners/cpu.rs:2:97
[INFO] [stdout]   |
[INFO] [stdout] 2 | use kernel::math::math::{mod_barrett, mod_barrett_64, mod_mul_barrett, mod_sub, montgomery_mul, ntt_butterfly_step};
[INFO] [stdout]   |                                                                                                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared::params::Params`
[INFO] [stdout]  --> crates/ntt/src/runners/cpu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use shared::params::Params;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{info, log};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_rotation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_rotation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_mult.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_mult.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sum.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sum.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `left_rotate_and_equal` and `right_rotate_and_equal`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_conjugate.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use common::math::shift::{left_rotate_and_equal, right_rotate_and_equal};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sub.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/example_sub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `basic_ckks_operations::example_bootstrapping::example_bootstrapping`
[INFO] [stdout]  --> examples/basic-ckks-operations/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use basic_ckks_operations::example_bootstrapping::example_bootstrapping;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> examples/basic-ckks-operations/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     unsafe {
[INFO] [stdout] 12 | |         std::env::set_var("RUST_LOG", "info");
[INFO] [stdout] 13 | |         env_logger::init();
[INFO] [stdout] 14 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let nu = 4;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let nu = 4;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 2;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dec_vec`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_rotation.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let dec_vec = ckks.decrypt_complex(&mut enc_vec1);
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dec_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::ToPrimitive`
[INFO] [stdout]  --> crates/common/src/util/primitive_mapper.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::ToPrimitive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> crates/common/src/math/modular.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 |     base = (base % q);
[INFO] [stdout]    |            ^        ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -     base = (base % q);
[INFO] [stdout] 34 +     base = base % q;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `Zero`
[INFO] [stdout]  --> crates/common/src/math/barret.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use num_traits::{One, Zero};
[INFO] [stdout]   |                  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `ToPrimitive`
[INFO] [stdout]  --> crates/common/src/math/primes.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::{One, ToPrimitive};
[INFO] [stdout]   |                  ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_bigint::BigUint`
[INFO] [stdout]  --> crates/common/src/math/big_int_mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_bigint::BigUint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::complex::Complex64`
[INFO] [stdout]  --> crates/common/src/math/shift.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num::complex::Complex64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::modular::gcd`
[INFO] [stdout]  --> crates/common/src/math/shift.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::math::modular::gcd;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_mult.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_mult.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut keys = timer("Keygen time",true, || {
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sum.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx.clone()));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut vec1: Vec<Complex<f64>> = vec![Complex::new(0.0370666, 0.664054), Complex::new(0.22808, 0.710907),
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_conjugate.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sub.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log_t`
[INFO] [stdout]   --> examples/basic-ckks-operations/src/example_sub.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let log_t = 3;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> crates/common/src/math/primes.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut rng = rand::thread_rng();
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fast_reduce` is never used
[INFO] [stdout]   --> crates/ntt/src/runners/cpu.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl NttCpu {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 14 |     fn fast_reduce(&self, val: u128, idx: usize, is_p: bool) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stdout]   --> crates/fhe/src/context.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(not(feature = "cuda"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Normal`
[INFO] [stdout]  --> crates/fhe/src/context.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand_distr::{Normal};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/context.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One`, `WrappingMul`, and `Zero`
[INFO] [stdout]   --> crates/fhe/src/context.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stdout]    |                  ^^^                            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mod_barrett_64`
[INFO] [stdout]   --> crates/fhe/src/context.rs:13:41
[INFO] [stdout]    |
[INFO] [stdout] 13 | use common::math::barret::{mod_barrett, mod_barrett_64, mod_mul_barrett};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stdout]    --> crates/fhe/src/context.rs:546:19
[INFO] [stdout]     |
[INFO] [stdout] 546 |         #[cfg(not(feature = "cuda"))]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:262:75
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut p_root_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                           ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:263:79
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let mut p_root_pows_inv: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/fhe/src/context.rs:264:81
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut p_root_scale_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stdout]     |                                                                                 ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> crates/fhe/src/context.rs:453:109
[INFO] [stdout]     |
[INFO] [stdout] 453 | ...   pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i]...
[INFO] [stdout]     |                                                                                                   ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 453 -                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stdout] 453 +                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, 1u64 << 20 , q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]     --> crates/fhe/src/context.rs:1966:13
[INFO] [stdout]      |
[INFO] [stdout] 1966 | /             unsafe {
[INFO] [stdout] 1967 | |                 std::ptr::swap(&mut vals[i], &mut vals[j]);
[INFO] [stdout] 1968 | |             }
[INFO] [stdout]      | |_____________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Keys`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::hash_map::Keys;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `rng`
[INFO] [stdout]  --> crates/fhe/src/keygen.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pow` is never read
[INFO] [stdout]    --> crates/common/src/math/primes.rs:161:23
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut pow = 1;
[INFO] [stdout]     |                       ^ this value is reassigned later and never used
[INFO] [stdout] 162 |         for k in 1..p-1 {
[INFO] [stdout] 163 |             pow = mod_pow(r, k, &p);
[INFO] [stdout]     |             ----------------------- `pow` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub unsafe fn add_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout]  6 | |     let len = a.len();
[INFO] [stdout]  7 | |     let mut chunks_16 = len / 16;
[INFO] [stdout]  8 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | / pub unsafe fn add_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout] 56 | |     use core::arch::x86_64::*;
[INFO] [stdout] 57 | |
[INFO] [stdout] 58 | |     let len = a.len();
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 | / pub unsafe fn sub_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout]  94 | |     let len = a.len();
[INFO] [stdout]  95 | |     let mut chunks_16 = len / 16;
[INFO] [stdout]  96 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | / pub unsafe fn sub_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stdout] 149 | |     use core::arch::x86_64::*;
[INFO] [stdout] 150 | |     let len = a.len();
[INFO] [stdout] 151 | |     let chunks = len / 4;
[INFO] [stdout] ...   |
[INFO] [stdout] 188 | |     _mm256_zeroupper();
[INFO] [stdout] 189 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | / pub unsafe fn mul_and_reduce_avx512(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 194 | |     let len = a.len();
[INFO] [stdout] 195 | |     let chunks = len / 8;
[INFO] [stdout] ...   |
[INFO] [stdout] 268 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:272:1
[INFO] [stdout]     |
[INFO] [stdout] 272 | / pub unsafe fn mul_and_reduce_avx2(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 273 | |     use core::arch::x86_64::*;
[INFO] [stdout] 274 | |
[INFO] [stdout] 275 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:365:1
[INFO] [stdout]     |
[INFO] [stdout] 365 | / pub unsafe fn mul_avx512_u64(a: &mut [u64], b: &[u64]) {
[INFO] [stdout] 366 | |     let len = a.len();
[INFO] [stdout] 367 | |     let chunks_16 = len / 16;
[INFO] [stdout] 368 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 404 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 405 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:409:1
[INFO] [stdout]     |
[INFO] [stdout] 409 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 410 | |     let len = a.len();
[INFO] [stdout] 411 | |     let mut chunks_16 = len / 16;
[INFO] [stdout] 412 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout] ...   |
[INFO] [stdout] 507 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:511:1
[INFO] [stdout]     |
[INFO] [stdout] 511 | / pub unsafe fn multiply_by_const_i64_avx512(
[INFO] [stdout] 512 | |     a: &[i64],
[INFO] [stdout] 513 | |     constant: i64,
[INFO] [stdout] 514 | |     result: &mut [i64],
[INFO] [stdout] ...   |
[INFO] [stdout] 555 | |     core::arch::asm!("vzeroupper");
[INFO] [stdout] 556 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/common/src/math/shift.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |             let mut tmp = res[i];
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:560:1
[INFO] [stdout]     |
[INFO] [stdout] 560 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stdout] 561 | |     use core::arch::x86_64::*;
[INFO] [stdout] 562 | |
[INFO] [stdout] 563 | |     let len = a.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 658 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:662:1
[INFO] [stdout]     |
[INFO] [stdout] 662 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, w_ratio: u64, q: u64) {
[INFO] [stdout] 663 | |     use core::arch::x86_64::*;
[INFO] [stdout] 664 | |
[INFO] [stdout] 665 | |     let len = u.len();
[INFO] [stdout] ...   |
[INFO] [stdout] 747 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:750:1
[INFO] [stdout]     |
[INFO] [stdout] 750 | / pub unsafe fn fused_mul_add_i64_avx512(
[INFO] [stdout] 751 | |     c0: *const i64, d0: *const i64, c1: *const i64, d1: *const i64, scale: i64,
[INFO] [stdout] 752 | |     t0: *mut u64, t1: *mut u64, t2: *mut u64, len: usize
[INFO] [stdout] 753 | | ) {
[INFO] [stdout] ...   |
[INFO] [stdout] 828 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 829 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:816:13
[INFO] [stdout]     |
[INFO] [stdout] 816 | /             unsafe {
[INFO] [stdout] 817 | |                 let c0_v = *c0.add(i);
[INFO] [stdout] 818 | |                 let d0_v = *d0.add(i);
[INFO] [stdout] 819 | |                 let c1_v = *c1.add(i);
[INFO] [stdout] ...   |
[INFO] [stdout] 824 | |                 *t2.add(i) = (d0_v as f64 * d1_v as f64 * inv_scale) as u64;
[INFO] [stdout] 825 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:833:1
[INFO] [stdout]     |
[INFO] [stdout] 833 | / pub unsafe fn fused_mul_add_i64_avx2(
[INFO] [stdout] 834 | |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout] 835 | |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout] 836 | | ) {
[INFO] [stdout] ...   |
[INFO] [stdout] 954 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stdout] 955 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:943:9
[INFO] [stdout]     |
[INFO] [stdout] 943 | /         unsafe {
[INFO] [stdout] 944 | |             let offset = i - processed;
[INFO] [stdout] 945 | |             let c0_v = *c0.add(offset);
[INFO] [stdout] 946 | |             let d0_v = *d0.add(offset);
[INFO] [stdout] ...   |
[INFO] [stdout] 951 | |             *t2.add(offset) = ((d0_v.wrapping_mul(d1_v) as f64) * inv_scale) as u64;
[INFO] [stdout] 952 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `common::math::barret::mod_mul_barrett`
[INFO] [stdout]  --> crates/fhe/src/simd/neon/neon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use common::math::barret::mod_mul_barrett;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ntt_butterfly_avx2`
[INFO] [stdout]  --> crates/fhe/src/simd/simd_operations.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...                   ntt_butterfly_avx2, sub_mod_avx2_u64, sub_mod_avx512_u64};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:74:40
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 SimdBackend::Avx512 => unsafe { add_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:76:38
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 SimdBackend::Avx2 => unsafe { add_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]   --> crates/fhe/src/simd/simd_operations.rs:98:40
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 SimdBackend::Avx512 => unsafe { sub_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:100:38
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 SimdBackend::Avx2 => unsafe { sub_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:122:40
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 SimdBackend::Avx512 => unsafe { mul_and_reduce_avx512(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:124:38
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 SimdBackend::Avx2 => unsafe { mul_and_reduce_avx2(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:146:40
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 SimdBackend::Avx512 => unsafe { mul_const_and_reduce_avx512(a_chunk, constant, q, qr, twok); },
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:148:38
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 SimdBackend::Avx2 => unsafe { mul_const_and_reduce_avx2(a_chunk, constant, q, qr, twok); },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:186:40
[INFO] [stdout]     |
[INFO] [stdout] 186 |                   SimdBackend::Avx512 => unsafe {
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 187 | |                     fused_mul_add_i64_avx512(
[INFO] [stdout] 188 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stdout] 189 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stdout] ...   |
[INFO] [stdout] 197 | |                     );
[INFO] [stdout] 198 | |                 },
[INFO] [stdout]     | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> crates/fhe/src/simd/simd_operations.rs:200:38
[INFO] [stdout]     |
[INFO] [stdout] 200 |                   SimdBackend::Avx2 => unsafe {
[INFO] [stdout]     |  ______________________________________^
[INFO] [stdout] 201 | |                     fused_mul_add_i64_avx2(
[INFO] [stdout] 202 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stdout] 203 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |                     );
[INFO] [stdout] 212 | |                 },
[INFO] [stdout]     | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1752:29
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1804:29
[INFO] [stdout]      |
[INFO] [stdout] 1804 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1877:29
[INFO] [stdout]      |
[INFO] [stdout] 1877 |         let mut rng = rand::thread_rng();
[INFO] [stdout]      |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> crates/fhe/src/simd/rvv/rvv.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the crate root is at `crates/fhe/src/lib.rs`
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]  --> crates/fhe/src/context.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_linalg::Scalar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> crates/fhe/src/ckks.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WrappingAdd`
[INFO] [stdout]   --> crates/fhe/src/context.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stdout]    |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/context.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let mut p_root_scale_pows_over_p: Vec<u64> = vec![0; k];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> crates/fhe/src/context.rs:303:21
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 let tmp = (power as u128) << 64;
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stdout]      |
[INFO] [stdout] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boot_context_map`
[INFO] [stdout]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stdout]      |
[INFO] [stdout] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boot_context_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]     --> crates/fhe/src/context.rs:2008:13
[INFO] [stdout]      |
[INFO] [stdout] 2008 |         let ctx = Context::new(15, 4, 55, 620,3.3, true);
[INFO] [stdout]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:477:57
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn mult_by_monomial(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:525:71
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn mult_by_monomial_and_equal(&self, cipher: &mut Ciphertext, poly: &[u64]) {
[INFO] [stdout]     |                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `poly`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:530:46
[INFO] [stdout]     |
[INFO] [stdout] 530 |     pub fn imult(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stdout]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:675:13
[INFO] [stdout]     |
[INFO] [stdout] 675 |         for i in 0..dl {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dl`
[INFO] [stdout]    --> crates/fhe/src/ckks.rs:698:13
[INFO] [stdout]     |
[INFO] [stdout] 698 |         let dl = cipher.l - l;
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_dl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> crates/fhe/src/simd/avx/avx.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut chunks_16 = len / 16;
[INFO] [stdout]   |         ----^^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/fhe/src/simd/avx/avx.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut chunks_16 = len / 16;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let mut chunks_16 = len / 16;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:412:9
[INFO] [stdout]     |
[INFO] [stdout] 412 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:517:9
[INFO] [stdout]     |
[INFO] [stdout] 517 |     let mut a_ptr = a.as_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:518:9
[INFO] [stdout]     |
[INFO] [stdout] 518 |     let mut r_ptr = result.as_mut_ptr();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |     let mut chunks_16 = len / 16;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:5
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |     ----^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:25
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                         ----^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:45
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                                             ----^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:834:65
[INFO] [stdout]     |
[INFO] [stdout] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stdout]     |                                                                 ----^^
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:5
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |     ----^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:23
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |                       ----^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:835:41
[INFO] [stdout]     |
[INFO] [stdout] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stdout]     |                                         ----^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/fhe/src/simd/avx/avx.rs:837:9
[INFO] [stdout]     |
[INFO] [stdout] 837 |     let mut chunks = len / 4;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_Q` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1415:9
[INFO] [stdout]      |
[INFO] [stdout] 1415 |         log_Q: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case: `log_q`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_T` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1416:9
[INFO] [stdout]      |
[INFO] [stdout] 1416 |         log_T: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case: `log_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_I` should have a snake case name
[INFO] [stdout]     --> crates/fhe/src/ckks.rs:1417:9
[INFO] [stdout]      |
[INFO] [stdout] 1417 |         log_I: usize,
[INFO] [stdout]      |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `log_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stdout]  --> crates/fhe/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(riscv_target_feature)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized] target(s) in 2.20s
[INFO] running `Command { std: "docker" "inspect" "5d577f2142931352e86bacbfc4206364e4d329a60da4d3f27492ec7942ea4a4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d577f2142931352e86bacbfc4206364e4d329a60da4d3f27492ec7942ea4a4a", kill_on_drop: false }`
[INFO] [stdout] 5d577f2142931352e86bacbfc4206364e4d329a60da4d3f27492ec7942ea4a4a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d5d01254b6ec9f88ad133b33293f8b1a387f4949f3c6f0800d05afca4949820d
[INFO] running `Command { std: "docker" "start" "-a" "d5d01254b6ec9f88ad133b33293f8b1a387f4949f3c6f0800d05afca4949820d", kill_on_drop: false }`
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]   --> crates/ntt/kernel/src/simd/avx/avx.rs:5:1
[INFO] [stderr]    |
[INFO] [stderr]  5 | / pub unsafe fn ntt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stderr]  6 | |     let len = u.len();
[INFO] [stderr]  7 | |     let mut chunks = len / 8;
[INFO] [stderr]  8 | |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stderr] ...  |
[INFO] [stderr] 93 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: requested on the command line with `-W unsafe-code`
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:97:1
[INFO] [stderr]     |
[INFO] [stderr]  97 | / pub unsafe fn intt_butterfly_avx512(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stderr]  98 | |     let len = u.len();
[INFO] [stderr]  99 | |     let mut chunks = len / 8;
[INFO] [stderr] ...   |
[INFO] [stderr] 199 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:257:1
[INFO] [stderr]     |
[INFO] [stderr] 257 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, q_inv: u64) {
[INFO] [stderr] 258 | |     use core::arch::x86_64::*;
[INFO] [stderr] 259 | |
[INFO] [stderr] 260 | |     let len = u.len();
[INFO] [stderr] ...   |
[INFO] [stderr] 310 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:315:1
[INFO] [stderr]     |
[INFO] [stderr] 315 | / pub unsafe fn intt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, q: u64, qd: u64, q_inv: u64) {
[INFO] [stderr] 316 | |     use core::arch::x86_64::*;
[INFO] [stderr] 317 | |
[INFO] [stderr] 318 | |     let len = u.len();
[INFO] [stderr] ...   |
[INFO] [stderr] 378 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:383:1
[INFO] [stderr]     |
[INFO] [stderr] 383 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64],
[INFO] [stderr] 384 | |                                           constant: u64, q: u64,
[INFO] [stderr] 385 | |                                           qr: u64, twok: u64) {
[INFO] [stderr] 386 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stderr] ...   |
[INFO] [stderr] 465 | |     );
[INFO] [stderr] 466 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:471:1
[INFO] [stderr]     |
[INFO] [stderr] 471 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stderr] 472 | |     use core::arch::x86_64::*;
[INFO] [stderr] 473 | |
[INFO] [stderr] 474 | |     let len = a.len();
[INFO] [stderr] ...   |
[INFO] [stderr] 570 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::math::math::mod_mul_barrett`
[INFO] [stderr]  --> crates/ntt/kernel/src/simd/neon/neon.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::math::math::mod_mul_barrett;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]   --> crates/ntt/kernel/src/simd/simd_operations.rs:67:36
[INFO] [stderr]    |
[INFO] [stderr] 67 |               SimdBackend::Avx512 => unsafe {
[INFO] [stderr]    |  ____________________________________^
[INFO] [stderr] 68 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stderr] 69 | |                     ntt_butterfly_avx512(u_c, v_c, w, q, q_inv);
[INFO] [stderr] ...  |
[INFO] [stderr] 72 | |             },
[INFO] [stderr]    | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]   --> crates/ntt/kernel/src/simd/simd_operations.rs:74:34
[INFO] [stderr]    |
[INFO] [stderr] 74 |               SimdBackend::Avx2 => unsafe {
[INFO] [stderr]    |  __________________________________^
[INFO] [stderr] 75 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stderr] 76 | |                     ntt_butterfly_avx2(u_c, v_c, w, q, q_inv);
[INFO] [stderr] ...  |
[INFO] [stderr] 79 | |             },
[INFO] [stderr]    | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/simd_operations.rs:115:36
[INFO] [stderr]     |
[INFO] [stderr] 115 |               SimdBackend::Avx512 => unsafe {
[INFO] [stderr]     |  ____________________________________^
[INFO] [stderr] 116 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stderr] 117 | |                     intt_butterfly_avx512(u_c, v_c, w, q, qd, q_inv);
[INFO] [stderr] ...   |
[INFO] [stderr] 120 | |             },
[INFO] [stderr]     | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/simd_operations.rs:122:34
[INFO] [stderr]     |
[INFO] [stderr] 122 |               SimdBackend::Avx2 => unsafe {
[INFO] [stderr]     |  __________________________________^
[INFO] [stderr] 123 | |                 for (u_c, v_c) in u.chunks_mut(L1_BLOCK_SIZE).zip(v.chunks_mut(L1_BLOCK_SIZE)) {
[INFO] [stderr] 124 | |                     intt_butterfly_avx2(u_c, v_c, w, q, qd, q_inv);
[INFO] [stderr] ...   |
[INFO] [stderr] 127 | |             },
[INFO] [stderr]     | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/simd_operations.rs:163:36
[INFO] [stderr]     |
[INFO] [stderr] 163 |               SimdBackend::Avx512 => unsafe {
[INFO] [stderr]     |  ____________________________________^
[INFO] [stderr] 164 | |                 mul_const_and_reduce_avx512(a, constant, q, qr, twok);
[INFO] [stderr] 165 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stderr] 166 | |             },
[INFO] [stderr]     | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/simd_operations.rs:168:34
[INFO] [stderr]     |
[INFO] [stderr] 168 |               SimdBackend::Avx2 => unsafe {
[INFO] [stderr]     |  __________________________________^
[INFO] [stderr] 169 | |                 mul_const_and_reduce_avx2(a, constant, q, qr, twok);
[INFO] [stderr] 170 | |                 core::arch::x86_64::_mm256_zeroupper();
[INFO] [stderr] 171 | |             },
[INFO] [stderr]     | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `core::arch::asm`
[INFO] [stderr]  --> crates/ntt/kernel/src/simd/sve2/sve2.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use core::arch::asm;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:202:1
[INFO] [stderr]     |
[INFO] [stderr] 202 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:215:1
[INFO] [stderr]     |
[INFO] [stderr] 215 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stderr] 
[INFO] [stderr] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:232:1
[INFO] [stderr]     |
[INFO] [stderr] 232 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stderr] 
[INFO] [stderr] warning: `#[target_feature]` attribute cannot be used on macro defs
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:244:1
[INFO] [stderr]     |
[INFO] [stderr] 244 | #[target_feature(enable = "avx2", enable = "fma")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = help: `#[target_feature]` can only be applied to functions
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> crates/ntt/kernel/src/simd/avx/avx.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let mut chunks = len / 8;
[INFO] [stderr]   |         ----^^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> crates/ntt/kernel/src/simd/avx/avx.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> crates/ntt/kernel/src/simd/avx/avx.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> crates/ntt/kernel/src/simd/avx/avx.rs:99:9
[INFO] [stderr]    |
[INFO] [stderr] 99 |     let mut chunks = len / 8;
[INFO] [stderr]    |         ----^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:101:9
[INFO] [stderr]     |
[INFO] [stderr] 101 |     let mut u_ptr = u.as_mut_ptr();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 102 |     let mut v_ptr = v.as_mut_ptr();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:386:9
[INFO] [stderr]     |
[INFO] [stderr] 386 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/ntt/kernel/src/simd/avx/avx.rs:387:9
[INFO] [stderr]     |
[INFO] [stderr] 387 |     let mut chunks = a.len() / 8;
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stderr]  --> crates/ntt/kernel/src/lib.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![feature(riscv_target_feature)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `kernel` (lib) generated 27 warnings (run `cargo fix --lib -p kernel` to apply 14 suggestions)
[INFO] [stderr] warning: unused import: `ntt_butterfly_step`
[INFO] [stderr]  --> crates/ntt/src/runners/cpu.rs:2:97
[INFO] [stderr]   |
[INFO] [stderr] 2 | use kernel::math::math::{mod_barrett, mod_barrett_64, mod_mul_barrett, mod_sub, montgomery_mul, ntt_butterfly_step};
[INFO] [stderr]   |                                                                                                 ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `shared::params::Params`
[INFO] [stderr]  --> crates/ntt/src/runners/cpu.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use shared::params::Params;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `fast_reduce` is never used
[INFO] [stderr]   --> crates/ntt/src/runners/cpu.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl NttCpu {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] 14 |     fn fast_reduce(&self, val: u128, idx: usize, is_p: bool) -> u64 {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ntt` (lib) generated 3 warnings (run `cargo fix --lib -p ntt` to apply 2 suggestions)
[INFO] [stderr] warning: unused import: `num_traits::ToPrimitive`
[INFO] [stderr]  --> crates/common/src/util/primitive_mapper.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use num_traits::ToPrimitive;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> crates/common/src/math/modular.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 34 |     base = (base % q);
[INFO] [stderr]    |            ^        ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 34 -     base = (base % q);
[INFO] [stderr] 34 +     base = base % q;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `One` and `Zero`
[INFO] [stderr]  --> crates/common/src/math/barret.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | use num_traits::{One, Zero};
[INFO] [stderr]   |                  ^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `One` and `ToPrimitive`
[INFO] [stderr]  --> crates/common/src/math/primes.rs:2:18
[INFO] [stderr]   |
[INFO] [stderr] 2 | use num_traits::{One, ToPrimitive};
[INFO] [stderr]   |                  ^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_bigint::BigUint`
[INFO] [stderr]  --> crates/common/src/math/big_int_mod.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use num_bigint::BigUint;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num::complex::Complex64`
[INFO] [stderr]  --> crates/common/src/math/shift.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use num::complex::Complex64;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::math::modular::gcd`
[INFO] [stderr]  --> crates/common/src/math/shift.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::math::modular::gcd;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]    --> crates/common/src/math/primes.rs:104:25
[INFO] [stderr]     |
[INFO] [stderr] 104 |     let mut rng = rand::thread_rng();
[INFO] [stderr]     |                         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> crates/common/src/math/shift.rs:59:17
[INFO] [stderr]    |
[INFO] [stderr] 59 |             let mut tmp = res[i];
[INFO] [stderr]    |                 ----^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `common` (lib) generated 9 warnings (run `cargo fix --lib -p common` to apply 8 suggestions)
[INFO] [stderr] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stderr]   --> crates/fhe/src/context.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | #[cfg(not(feature = "cuda"))]
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `default`
[INFO] [stderr]    = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Normal`
[INFO] [stderr]  --> crates/fhe/src/context.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rand_distr::{Normal};
[INFO] [stderr]   |                  ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::process::exit`
[INFO] [stderr]  --> crates/fhe/src/context.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::process::exit;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `One`, `WrappingMul`, and `Zero`
[INFO] [stderr]   --> crates/fhe/src/context.rs:10:18
[INFO] [stderr]    |
[INFO] [stderr] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stderr]    |                  ^^^                            ^^^^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mod_barrett_64`
[INFO] [stderr]   --> crates/fhe/src/context.rs:13:41
[INFO] [stderr]    |
[INFO] [stderr] 13 | use common::math::barret::{mod_barrett, mod_barrett_64, mod_mul_barrett};
[INFO] [stderr]    |                                         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `cuda`
[INFO] [stderr]    --> crates/fhe/src/context.rs:546:19
[INFO] [stderr]     |
[INFO] [stderr] 546 |         #[cfg(not(feature = "cuda"))]
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected values for `feature` are: `default`
[INFO] [stderr]     = help: consider adding `cuda` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> crates/fhe/src/context.rs:262:75
[INFO] [stderr]     |
[INFO] [stderr] 262 |         let mut p_root_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stderr]     |                                                                           ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> crates/fhe/src/context.rs:263:79
[INFO] [stderr]     |
[INFO] [stderr] 263 |         let mut p_root_pows_inv: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stderr]     |                                                                               ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> crates/fhe/src/context.rs:264:81
[INFO] [stderr]     |
[INFO] [stderr] 264 |         let mut p_root_scale_pows: Vec<Vec<u64>> = vec![vec![0; n as usize]; k];;
[INFO] [stderr]     |                                                                                 ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> crates/fhe/src/context.rs:453:109
[INFO] [stderr]     |
[INFO] [stderr] 453 | ...   pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i]...
[INFO] [stderr]     |                                                                                                   ^          ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 453 -                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, (1u64 << 20), q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stderr] 453 +                 pc_coeff[j + (i << log_n)] = mod_mul_barrett((94.2372881 * (p as i64 >> 20) as f64) as u64, 1u64 << 20 , q_vec[i], qr_vec[i], q_twok[i]);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]     --> crates/fhe/src/context.rs:1966:13
[INFO] [stderr]      |
[INFO] [stderr] 1966 | /             unsafe {
[INFO] [stderr] 1967 | |                 std::ptr::swap(&mut vals[i], &mut vals[j]);
[INFO] [stderr] 1968 | |             }
[INFO] [stderr]      | |_____________^
[INFO] [stderr]      |
[INFO] [stderr]      = note: requested on the command line with `-W unsafe-code`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> crates/fhe/src/keygen.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::hash_map::Keys`
[INFO] [stderr]  --> crates/fhe/src/keygen.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::collections::hash_map::Keys;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::process::exit`
[INFO] [stderr]  --> crates/fhe/src/keygen.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::process::exit;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> crates/fhe/src/keygen.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Rng` and `rng`
[INFO] [stderr]  --> crates/fhe/src/keygen.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | use rand::{rng, Rng};
[INFO] [stderr]   |            ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::process::exit`
[INFO] [stderr]  --> crates/fhe/src/ckks.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::process::exit;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> crates/fhe/src/ckks.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]   --> crates/fhe/src/simd/avx/avx.rs:5:1
[INFO] [stderr]    |
[INFO] [stderr]  5 | / pub unsafe fn add_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stderr]  6 | |     let len = a.len();
[INFO] [stderr]  7 | |     let mut chunks_16 = len / 16;
[INFO] [stderr]  8 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stderr] ...  |
[INFO] [stderr] 51 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]   --> crates/fhe/src/simd/avx/avx.rs:55:1
[INFO] [stderr]    |
[INFO] [stderr] 55 | / pub unsafe fn add_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stderr] 56 | |     use core::arch::x86_64::*;
[INFO] [stderr] 57 | |
[INFO] [stderr] 58 | |     let len = a.len();
[INFO] [stderr] ...  |
[INFO] [stderr] 89 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:93:1
[INFO] [stderr]     |
[INFO] [stderr]  93 | / pub unsafe fn sub_mod_avx512_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stderr]  94 | |     let len = a.len();
[INFO] [stderr]  95 | |     let mut chunks_16 = len / 16;
[INFO] [stderr]  96 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stderr] ...   |
[INFO] [stderr] 144 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | / pub unsafe fn sub_mod_avx2_u64(a: &mut [u64], b: &[u64], q: u64) {
[INFO] [stderr] 149 | |     use core::arch::x86_64::*;
[INFO] [stderr] 150 | |     let len = a.len();
[INFO] [stderr] 151 | |     let chunks = len / 4;
[INFO] [stderr] ...   |
[INFO] [stderr] 188 | |     _mm256_zeroupper();
[INFO] [stderr] 189 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:193:1
[INFO] [stderr]     |
[INFO] [stderr] 193 | / pub unsafe fn mul_and_reduce_avx512(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stderr] 194 | |     let len = a.len();
[INFO] [stderr] 195 | |     let chunks = len / 8;
[INFO] [stderr] ...   |
[INFO] [stderr] 268 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:272:1
[INFO] [stderr]     |
[INFO] [stderr] 272 | / pub unsafe fn mul_and_reduce_avx2(a: &mut [u64], b: &[u64], q: u64, qr: u64, twok: u64) {
[INFO] [stderr] 273 | |     use core::arch::x86_64::*;
[INFO] [stderr] 274 | |
[INFO] [stderr] 275 | |     let len = a.len();
[INFO] [stderr] ...   |
[INFO] [stderr] 361 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:365:1
[INFO] [stderr]     |
[INFO] [stderr] 365 | / pub unsafe fn mul_avx512_u64(a: &mut [u64], b: &[u64]) {
[INFO] [stderr] 366 | |     let len = a.len();
[INFO] [stderr] 367 | |     let chunks_16 = len / 16;
[INFO] [stderr] 368 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stderr] ...   |
[INFO] [stderr] 404 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stderr] 405 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:409:1
[INFO] [stderr]     |
[INFO] [stderr] 409 | / pub unsafe fn mul_const_and_reduce_avx512(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stderr] 410 | |     let len = a.len();
[INFO] [stderr] 411 | |     let mut chunks_16 = len / 16;
[INFO] [stderr] 412 | |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stderr] ...   |
[INFO] [stderr] 507 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:511:1
[INFO] [stderr]     |
[INFO] [stderr] 511 | / pub unsafe fn multiply_by_const_i64_avx512(
[INFO] [stderr] 512 | |     a: &[i64],
[INFO] [stderr] 513 | |     constant: i64,
[INFO] [stderr] 514 | |     result: &mut [i64],
[INFO] [stderr] ...   |
[INFO] [stderr] 555 | |     core::arch::asm!("vzeroupper");
[INFO] [stderr] 556 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:560:1
[INFO] [stderr]     |
[INFO] [stderr] 560 | / pub unsafe fn mul_const_and_reduce_avx2(a: &mut [u64], constant: u64, q: u64, qr: u64, twok: u64) {
[INFO] [stderr] 561 | |     use core::arch::x86_64::*;
[INFO] [stderr] 562 | |
[INFO] [stderr] 563 | |     let len = a.len();
[INFO] [stderr] ...   |
[INFO] [stderr] 658 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:662:1
[INFO] [stderr]     |
[INFO] [stderr] 662 | / pub unsafe fn ntt_butterfly_avx2(u: &mut [u64], v: &mut [u64], w: u64, w_ratio: u64, q: u64) {
[INFO] [stderr] 663 | |     use core::arch::x86_64::*;
[INFO] [stderr] 664 | |
[INFO] [stderr] 665 | |     let len = u.len();
[INFO] [stderr] ...   |
[INFO] [stderr] 747 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:750:1
[INFO] [stderr]     |
[INFO] [stderr] 750 | / pub unsafe fn fused_mul_add_i64_avx512(
[INFO] [stderr] 751 | |     c0: *const i64, d0: *const i64, c1: *const i64, d1: *const i64, scale: i64,
[INFO] [stderr] 752 | |     t0: *mut u64, t1: *mut u64, t2: *mut u64, len: usize
[INFO] [stderr] 753 | | ) {
[INFO] [stderr] ...   |
[INFO] [stderr] 828 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stderr] 829 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:816:13
[INFO] [stderr]     |
[INFO] [stderr] 816 | /             unsafe {
[INFO] [stderr] 817 | |                 let c0_v = *c0.add(i);
[INFO] [stderr] 818 | |                 let d0_v = *d0.add(i);
[INFO] [stderr] 819 | |                 let c1_v = *c1.add(i);
[INFO] [stderr] ...   |
[INFO] [stderr] 824 | |                 *t2.add(i) = (d0_v as f64 * d1_v as f64 * inv_scale) as u64;
[INFO] [stderr] 825 | |             }
[INFO] [stderr]     | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: declaration of an `unsafe` function
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:833:1
[INFO] [stderr]     |
[INFO] [stderr] 833 | / pub unsafe fn fused_mul_add_i64_avx2(
[INFO] [stderr] 834 | |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stderr] 835 | |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stderr] 836 | | ) {
[INFO] [stderr] ...   |
[INFO] [stderr] 954 | |     core::arch::x86_64::_mm256_zeroupper();
[INFO] [stderr] 955 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:943:9
[INFO] [stderr]     |
[INFO] [stderr] 943 | /         unsafe {
[INFO] [stderr] 944 | |             let offset = i - processed;
[INFO] [stderr] 945 | |             let c0_v = *c0.add(offset);
[INFO] [stderr] 946 | |             let d0_v = *d0.add(offset);
[INFO] [stderr] ...   |
[INFO] [stderr] 951 | |             *t2.add(offset) = ((d0_v.wrapping_mul(d1_v) as f64) * inv_scale) as u64;
[INFO] [stderr] 952 | |         }
[INFO] [stderr]     | |_________^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `common::math::barret::mod_mul_barrett`
[INFO] [stderr]  --> crates/fhe/src/simd/neon/neon.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use common::math::barret::mod_mul_barrett;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ntt_butterfly_avx2`
[INFO] [stderr]  --> crates/fhe/src/simd/simd_operations.rs:9:29
[INFO] [stderr]   |
[INFO] [stderr] 9 | ...                   ntt_butterfly_avx2, sub_mod_avx2_u64, sub_mod_avx512_u64};
[INFO] [stderr]   |                       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]   --> crates/fhe/src/simd/simd_operations.rs:74:40
[INFO] [stderr]    |
[INFO] [stderr] 74 |                 SimdBackend::Avx512 => unsafe { add_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]   --> crates/fhe/src/simd/simd_operations.rs:76:38
[INFO] [stderr]    |
[INFO] [stderr] 76 |                 SimdBackend::Avx2 => unsafe { add_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]   --> crates/fhe/src/simd/simd_operations.rs:98:40
[INFO] [stderr]    |
[INFO] [stderr] 98 |                 SimdBackend::Avx512 => unsafe { sub_mod_avx512_u64(a_chunk, b_chunk, q); },
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/simd_operations.rs:100:38
[INFO] [stderr]     |
[INFO] [stderr] 100 |                 SimdBackend::Avx2 => unsafe { sub_mod_avx2_u64(a_chunk, b_chunk, q); },
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/simd_operations.rs:122:40
[INFO] [stderr]     |
[INFO] [stderr] 122 |                 SimdBackend::Avx512 => unsafe { mul_and_reduce_avx512(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/simd_operations.rs:124:38
[INFO] [stderr]     |
[INFO] [stderr] 124 |                 SimdBackend::Avx2 => unsafe { mul_and_reduce_avx2(a_chunk, b_chunk, q, qr, twok); },
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/simd_operations.rs:146:40
[INFO] [stderr]     |
[INFO] [stderr] 146 |                 SimdBackend::Avx512 => unsafe { mul_const_and_reduce_avx512(a_chunk, constant, q, qr, twok); },
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/simd_operations.rs:148:38
[INFO] [stderr]     |
[INFO] [stderr] 148 |                 SimdBackend::Avx2 => unsafe { mul_const_and_reduce_avx2(a_chunk, constant, q, qr, twok); },
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/simd_operations.rs:186:40
[INFO] [stderr]     |
[INFO] [stderr] 186 |                   SimdBackend::Avx512 => unsafe {
[INFO] [stderr]     |  ________________________________________^
[INFO] [stderr] 187 | |                     fused_mul_add_i64_avx512(
[INFO] [stderr] 188 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stderr] 189 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stderr] ...   |
[INFO] [stderr] 197 | |                     );
[INFO] [stderr] 198 | |                 },
[INFO] [stderr]     | |_________________^
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]    --> crates/fhe/src/simd/simd_operations.rs:200:38
[INFO] [stderr]     |
[INFO] [stderr] 200 |                   SimdBackend::Avx2 => unsafe {
[INFO] [stderr]     |  ______________________________________^
[INFO] [stderr] 201 | |                     fused_mul_add_i64_avx2(
[INFO] [stderr] 202 | |                         std::mem::transmute(c0_c.as_ptr()),
[INFO] [stderr] 203 | |                         std::mem::transmute(d0_c.as_ptr()),
[INFO] [stderr] ...   |
[INFO] [stderr] 211 | |                     );
[INFO] [stderr] 212 | |                 },
[INFO] [stderr]     | |_________________^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]     --> crates/fhe/src/context.rs:1752:29
[INFO] [stderr]      |
[INFO] [stderr] 1752 |         let mut rng = rand::thread_rng();
[INFO] [stderr]      |                             ^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]     --> crates/fhe/src/context.rs:1804:29
[INFO] [stderr]      |
[INFO] [stderr] 1804 |         let mut rng = rand::thread_rng();
[INFO] [stderr]      |                             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]     --> crates/fhe/src/context.rs:1877:29
[INFO] [stderr]      |
[INFO] [stderr] 1877 |         let mut rng = rand::thread_rng();
[INFO] [stderr]      |                             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stderr]  --> crates/fhe/src/simd/rvv/rvv.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![feature(riscv_target_feature)]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = help: the crate root is at `crates/fhe/src/lib.rs`
[INFO] [stderr]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stderr]  --> crates/fhe/src/context.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ndarray_linalg::Scalar;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rayon::prelude`
[INFO] [stderr]  --> crates/fhe/src/ckks.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use rayon::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `WrappingAdd`
[INFO] [stderr]   --> crates/fhe/src/context.rs:10:36
[INFO] [stderr]    |
[INFO] [stderr] 10 | use num_traits::{One, ToPrimitive, WrappingAdd, WrappingMul, Zero};
[INFO] [stderr]    |                                    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/context.rs:265:13
[INFO] [stderr]     |
[INFO] [stderr] 265 |         let mut p_root_scale_pows_over_p: Vec<u64> = vec![0; k];
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> crates/fhe/src/context.rs:303:21
[INFO] [stderr]     |
[INFO] [stderr] 303 |                 let tmp = (power as u128) << 64;
[INFO] [stderr]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stderr]      |
[INFO] [stderr] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stderr]      |             ----^^^^^^^^^^^^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `boot_context_map`
[INFO] [stderr]     --> crates/fhe/src/context.rs:1557:13
[INFO] [stderr]      |
[INFO] [stderr] 1557 |         let mut boot_context_map: HashMap<usize, BootContext> = HashMap::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boot_context_map`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `poly`
[INFO] [stderr]    --> crates/fhe/src/ckks.rs:477:57
[INFO] [stderr]     |
[INFO] [stderr] 477 |     pub fn mult_by_monomial(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stderr]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `poly`
[INFO] [stderr]    --> crates/fhe/src/ckks.rs:525:71
[INFO] [stderr]     |
[INFO] [stderr] 525 |     pub fn mult_by_monomial_and_equal(&self, cipher: &mut Ciphertext, poly: &[u64]) {
[INFO] [stderr]     |                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `poly`
[INFO] [stderr]    --> crates/fhe/src/ckks.rs:530:46
[INFO] [stderr]     |
[INFO] [stderr] 530 |     pub fn imult(&self, cipher: &Ciphertext, poly: &[u64]) -> Ciphertext {
[INFO] [stderr]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_poly`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> crates/fhe/src/ckks.rs:675:13
[INFO] [stderr]     |
[INFO] [stderr] 675 |         for i in 0..dl {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dl`
[INFO] [stderr]    --> crates/fhe/src/ckks.rs:698:13
[INFO] [stderr]     |
[INFO] [stderr] 698 |         let dl = cipher.l - l;
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_dl`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> crates/fhe/src/simd/avx/avx.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let mut chunks_16 = len / 16;
[INFO] [stderr]   |         ----^^^^^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> crates/fhe/src/simd/avx/avx.rs:95:9
[INFO] [stderr]    |
[INFO] [stderr] 95 |     let mut chunks_16 = len / 16;
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:411:9
[INFO] [stderr]     |
[INFO] [stderr] 411 |     let mut chunks_16 = len / 16;
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:412:9
[INFO] [stderr]     |
[INFO] [stderr] 412 |     let mut a_ptr = a.as_mut_ptr();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:517:9
[INFO] [stderr]     |
[INFO] [stderr] 517 |     let mut a_ptr = a.as_ptr();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:518:9
[INFO] [stderr]     |
[INFO] [stderr] 518 |     let mut r_ptr = result.as_mut_ptr();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:520:9
[INFO] [stderr]     |
[INFO] [stderr] 520 |     let mut chunks_16 = len / 16;
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:834:5
[INFO] [stderr]     |
[INFO] [stderr] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stderr]     |     ----^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:834:25
[INFO] [stderr]     |
[INFO] [stderr] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stderr]     |                         ----^^
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:834:45
[INFO] [stderr]     |
[INFO] [stderr] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stderr]     |                                             ----^^
[INFO] [stderr]     |                                             |
[INFO] [stderr]     |                                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:834:65
[INFO] [stderr]     |
[INFO] [stderr] 834 |     mut c0: *const i64, mut d0: *const i64, mut c1: *const i64, mut d1: *const i64, scale: i64,
[INFO] [stderr]     |                                                                 ----^^
[INFO] [stderr]     |                                                                 |
[INFO] [stderr]     |                                                                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:835:5
[INFO] [stderr]     |
[INFO] [stderr] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stderr]     |     ----^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:835:23
[INFO] [stderr]     |
[INFO] [stderr] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stderr]     |                       ----^^
[INFO] [stderr]     |                       |
[INFO] [stderr]     |                       help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:835:41
[INFO] [stderr]     |
[INFO] [stderr] 835 |     mut t0: *mut u64, mut t1: *mut u64, mut t2: *mut u64, len: usize
[INFO] [stderr]     |                                         ----^^
[INFO] [stderr]     |                                         |
[INFO] [stderr]     |                                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/fhe/src/simd/avx/avx.rs:837:9
[INFO] [stderr]     |
[INFO] [stderr] 837 |     let mut chunks = len / 4;
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `log_Q` should have a snake case name
[INFO] [stderr]     --> crates/fhe/src/ckks.rs:1415:9
[INFO] [stderr]      |
[INFO] [stderr] 1415 |         log_Q: usize,
[INFO] [stderr]      |         ^^^^^ help: convert the identifier to snake case: `log_q`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `log_T` should have a snake case name
[INFO] [stderr]     --> crates/fhe/src/ckks.rs:1416:9
[INFO] [stderr]      |
[INFO] [stderr] 1416 |         log_T: usize,
[INFO] [stderr]      |         ^^^^^ help: convert the identifier to snake case: `log_t`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `log_I` should have a snake case name
[INFO] [stderr]     --> crates/fhe/src/ckks.rs:1417:9
[INFO] [stderr]      |
[INFO] [stderr] 1417 |         log_I: usize,
[INFO] [stderr]      |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `log_i`
[INFO] [stderr] 
[INFO] [stderr] warning: feature `riscv_target_feature` is declared but not used
[INFO] [stderr]  --> crates/fhe/src/lib.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![feature(riscv_target_feature)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `fhe` (lib) generated 80 warnings (run `cargo fix --lib -p fhe` to apply 38 suggestions)
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::process::exit`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::process::exit;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `log`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_bootstrapping.rs:5:17
[INFO] [stderr]   |
[INFO] [stderr] 5 | use log::{info, log};
[INFO] [stderr]   |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_rotation.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_rotation.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_mult.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_mult.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_sum.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_sum.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_conjugate.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_conjugate.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `left_rotate_and_equal` and `right_rotate_and_equal`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_conjugate.rs:6:27
[INFO] [stderr]   |
[INFO] [stderr] 6 | use common::math::shift::{left_rotate_and_equal, right_rotate_and_equal};
[INFO] [stderr]   |                           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_sub.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/example_sub.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 37 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nu`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_bootstrapping.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let nu = 4;
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_rotation.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_rotation.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nu`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_rotation.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let nu = 4;
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_nu`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `log_t`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_rotation.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     let log_t = 2;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dec_vec`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_rotation.rs:50:9
[INFO] [stderr]    |
[INFO] [stderr] 50 |     let dec_vec = ckks.decrypt_complex(&mut enc_vec1);
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dec_vec`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_mult.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `log_t`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_mult.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let log_t = 3;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_sum.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 27 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_sum.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |     let mut keys = timer("Keygen time",true, || {
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `log_t`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_sum.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let log_t = 3;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_conjugate.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 25 |     let mut kgen = KeyGen::new(Arc::clone(&ctx.clone()));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_conjugate.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let mut ckks = CKKS::new(Arc::clone(&ctx), Arc::clone(&keygen_shared));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_conjugate.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let mut vec1: Vec<Complex<f64>> = vec![Complex::new(0.0370666, 0.664054), Complex::new(0.22808, 0.710907),
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `log_t`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_conjugate.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     let log_t = 3;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_sub.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     let mut kgen = KeyGen::new(Arc::clone(&ctx));
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `log_t`
[INFO] [stderr]   --> examples/basic-ckks-operations/src/example_sub.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     let log_t = 3;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_log_t`
[INFO] [stderr] 
[INFO] [stderr] warning: `basic-ckks-operations` (lib) generated 33 warnings (run `cargo fix --lib -p basic-ckks-operations` to apply 33 suggestions)
[INFO] [stderr] warning: unused import: `basic_ckks_operations::example_bootstrapping::example_bootstrapping`
[INFO] [stderr]  --> examples/basic-ckks-operations/src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use basic_ckks_operations::example_bootstrapping::example_bootstrapping;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: usage of an `unsafe` block
[INFO] [stderr]   --> examples/basic-ckks-operations/src/main.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | /     unsafe {
[INFO] [stderr] 12 | |         std::env::set_var("RUST_LOG", "info");
[INFO] [stderr] 13 | |         env_logger::init();
[INFO] [stderr] 14 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: requested on the command line with `-W unsafe-code`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ctx`
[INFO] [stderr]     --> crates/fhe/src/context.rs:2008:13
[INFO] [stderr]      |
[INFO] [stderr] 2008 |         let ctx = Context::new(15, 4, 55, 620,3.3, true);
[INFO] [stderr]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `pow` is never read
[INFO] [stderr]    --> crates/common/src/math/primes.rs:161:23
[INFO] [stderr]     |
[INFO] [stderr] 161 |         let mut pow = 1;
[INFO] [stderr]     |                       ^ this value is reassigned later and never used
[INFO] [stderr] 162 |         for k in 1..p-1 {
[INFO] [stderr] 163 |             pow = mod_pow(r, k, &p);
[INFO] [stderr]     |             ----------------------- `pow` is overwritten here before the previous value is read
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `basic-ckks-operations` (bin "basic-ckks-operations" test) generated 2 warnings (run `cargo fix --bin "basic-ckks-operations" -p basic-ckks-operations --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `basic-ckks-operations` (lib test) generated 33 warnings (33 duplicates)
[INFO] [stderr] warning: `fhe` (lib test) generated 81 warnings (80 duplicates) (run `cargo fix --lib -p fhe --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `common` (lib test) generated 10 warnings (9 duplicates)
[INFO] [stderr] warning: `ntt` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: `kernel` (lib test) generated 27 warnings (27 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/basic_ckks_operations-dc9c61dce9224d90)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/basic_ckks_operations-80eba33172a13105)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/common-86a10c73f7099111)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test math::modular::tests::test_mod_exp ... ok
[INFO] [stdout] test math::barret::tests::test_mod_mul_barrett ... FAILED
[INFO] [stdout] test math::modular::tests::test_mod_add ... FAILED
[INFO] [stdout] test math::modular::tests::test_mod_mul ... ok
[INFO] [stdout] test math::modular::tests::test_mod_sub ... ok
[INFO] [stdout] test math::primes::tests::test_find_primitive_root ... ok
[INFO] [stdout] test math::primes::tests::test_find_mth_root_of_unity ... ok
[INFO] [stdout] test math::primes::tests::test_prime_factors ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- math::barret::tests::test_mod_mul_barrett stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'math::barret::tests::test_mod_mul_barrett' (20) panicked at crates/common/src/math/barret.rs:55:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 2305280059387871409
[INFO] [stdout]  right: 562949953421312
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x558004c2eb98 - <<std[d054f6f42beb1baa]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x558004c42a9a - core[5a1c3e9896636f3a]::fmt::write
[INFO] [stdout]    2:     0x558004c333b2 - <alloc[154f689e5dd3bae5]::vec::Vec<u8> as std[d054f6f42beb1baa]::io::Write>::write_fmt
[INFO] [stdout]    3:     0x558004c0dd46 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x558004c27139 - std[d054f6f42beb1baa]::panicking::default_hook
[INFO] [stdout]    5:     0x558004bc209c - test[fad20673b750c10e]::test_main_inner::<test[fad20673b750c10e]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x558004c272f2 - std[d054f6f42beb1baa]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x558004c0de02 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x558004c05799 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace::<std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x558004c0eb1d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind
[INFO] [stdout]   10:     0x558004c4318c - core[5a1c3e9896636f3a]::panicking::panic_fmt
[INFO] [stdout]   11:     0x558004c430a3 - core[5a1c3e9896636f3a]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x558004c3f6bd - core[5a1c3e9896636f3a]::panicking::assert_failed::<u64, u64>
[INFO] [stdout]   13:     0x558004baad2d - common[1b3709b26d91d7ec]::math::barret::tests::test_mod_mul_barrett
[INFO] [stdout]   14:     0x558004ba98b3 - common[1b3709b26d91d7ec]::math::barret::tests::test_mod_mul_barrett::{closure#0}
[INFO] [stdout]   15:     0x558004bb4f16 - <common[1b3709b26d91d7ec]::math::barret::tests::test_mod_mul_barrett::{closure#0} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   16:     0x558004bb517b - test[fad20673b750c10e]::__rust_begin_short_backtrace::<core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]   17:     0x558004bc29f5 - test[fad20673b750c10e]::run_test::{closure#0}
[INFO] [stdout]   18:     0x558004bbd554 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace::<test[fad20673b750c10e]::run_test::{closure#1}, ()>
[INFO] [stdout]   19:     0x558004bc5a72 - <std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   20:     0x558004c2e4ff - <std[d054f6f42beb1baa]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   21:     0x7769cbefeaa4 - <unknown>
[INFO] [stdout]   22:     0x7769cbf8ba64 - clone
[INFO] [stdout]   23:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- math::modular::tests::test_mod_add stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'math::modular::tests::test_mod_add' (21) panicked at crates/common/src/math/modular.rs:99:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 23
[INFO] [stdout]  right: 11
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x558004c2eb98 - <<std[d054f6f42beb1baa]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x558004c42a9a - core[5a1c3e9896636f3a]::fmt::write
[INFO] [stdout]    2:     0x558004c333b2 - <alloc[154f689e5dd3bae5]::vec::Vec<u8> as std[d054f6f42beb1baa]::io::Write>::write_fmt
[INFO] [stdout]    3:     0x558004c0dd46 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x558004c27139 - std[d054f6f42beb1baa]::panicking::default_hook
[INFO] [stdout]    5:     0x558004bc209c - test[fad20673b750c10e]::test_main_inner::<test[fad20673b750c10e]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x558004c272f2 - std[d054f6f42beb1baa]::panicking::panic_with_hook
[INFO] [stderr] error: test failed, to rerun pass `-p common --lib`
[INFO] [stdout]    7:     0x558004c0de02 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x558004c05799 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace::<std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x558004c0eb1d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind
[INFO] [stdout]   10:     0x558004c4318c - core[5a1c3e9896636f3a]::panicking::panic_fmt
[INFO] [stdout]   11:     0x558004c430a3 - core[5a1c3e9896636f3a]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x558004c3f6bd - core[5a1c3e9896636f3a]::panicking::assert_failed::<u64, u64>
[INFO] [stdout]   13:     0x558004bb3714 - common[1b3709b26d91d7ec]::math::modular::tests::test_mod_add
[INFO] [stdout]   14:     0x558004bb23b3 - common[1b3709b26d91d7ec]::math::modular::tests::test_mod_add::{closure#0}
[INFO] [stdout]   15:     0x558004bb5016 - <common[1b3709b26d91d7ec]::math::modular::tests::test_mod_add::{closure#0} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   16:     0x558004bb517b - test[fad20673b750c10e]::__rust_begin_short_backtrace::<core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]   17:     0x558004bc29f5 - test[fad20673b750c10e]::run_test::{closure#0}
[INFO] [stdout]   18:     0x558004bbd554 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace::<test[fad20673b750c10e]::run_test::{closure#1}, ()>
[INFO] [stdout]   19:     0x558004bc5a72 - <std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   20:     0x558004c2e4ff - <std[d054f6f42beb1baa]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   21:     0x7769cbefeaa4 - <unknown>
[INFO] [stdout]   22:     0x7769cbf8ba64 - clone
[INFO] [stdout]   23:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     math::barret::tests::test_mod_mul_barrett
[INFO] [stdout]     math::modular::tests::test_mod_add
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 6 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d5d01254b6ec9f88ad133b33293f8b1a387f4949f3c6f0800d05afca4949820d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d5d01254b6ec9f88ad133b33293f8b1a387f4949f3c6f0800d05afca4949820d", kill_on_drop: false }`
[INFO] [stdout] d5d01254b6ec9f88ad133b33293f8b1a387f4949f3c6f0800d05afca4949820d
